package com.cyyang.shop.service.impl;

import java.util.List;

import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;

import com.cyyang.shop.bean.Sku;
import com.cyyang.shop.bean.SkuVo;
import com.cyyang.shop.mapper.SkuMapper;
import com.cyyang.shop.service.SkuService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@Service(timeout = 10000)
public class SkuServiceImpl implements SkuService {

	@Autowired
	SkuMapper skuMapper;

	@Override
	public PageInfo<Sku> list(SkuVo vo, int pageNum, int pageSize) {
		PageHelper.startPage(pageNum, pageSize);
		return new PageInfo<>(skuMapper.list(vo));
	}

	@Override
	public void add(Sku sku, Integer[] specIds, Integer[] optionIds) {
		// 1.先添加sku
		skuMapper.addSku(sku);
		// 2.再添加中间表
		for (int i = 0; i < optionIds.length; i++) {

			skuMapper.addSkuSpec(specIds[i], optionIds[i], sku.getId());

		}
	}

	@Override
	public Sku findSkuBySkuId(Integer skuId) {
		return skuMapper.findSkuBySkuId(skuId);
	}

	@Override
	public void update(Sku sku, Integer[] specIds, Integer[] optionIds) {
		// 修改主表
		skuMapper.update(sku);
		// 根据SkuId删除中间表的规格和规格选项的数据--删除和sku相关的规格关联
		skuMapper.delMidBySkuId(sku.getId());
		// 重新添加
		for (int i = 0; i < optionIds.length; i++) {

			skuMapper.addSkuSpec(specIds[i], optionIds[i], sku.getId());

		}
	}

	@Override
	public List<Sku> findSkuBySpuId(Integer spuId) {
		return skuMapper.findSkuBySpuId(spuId);
	}

	@Override
	public void delById(Integer[] ids) {
		// TODO Auto-generated method stub
		//删除中间表
		skuMapper.delSkuSpecById(ids);
		//删除主表
		skuMapper.delById(ids);
	}

}
